﻿//
// *************************************************************************************
// WP-Framework
// 
// Developed by
// Lukas Kretschmar (lkretschmar.dev@bluewin.ch)
//
// Switzerland, Copyright (c) 2013 lkretschmar
// This content is released under the MIT License (http://opensource.org/licenses/MIT).
//     
// *************************************************************************************
//
//



using System;
using System.Collections.Generic;
using System.Reflection;
namespace KretschIT.WP_Fx.EasyMoq.Generator
{
    public interface IEasyMoqClassTemplateHelper
    {
        IEnumerable<EventInfo> GetEventsOf(Type type);
        IEnumerable<MethodInfo> GetMethodsOf(Type type);
        IEnumerable<PropertyInfo> GetPropertiesOf(Type type);
        string GetReturnType(Type type);
        bool HasReturnType(Type type);
        string GetUniqueNameOf(Type type);
        string CreateArguments(IEnumerable<ParameterInfo> arguments, bool includeType);
        string CreateGenericArgumentsFor(EventInfo e);
        string CreateGenericArgumentsFor(MethodInfo method);        
        string CreateGenericArgumentsFor(Type type);
        string CreateGenericArgumentsWith(IEnumerable<Type> types);
        string GetGenericConstraintOf(IEnumerable<Type> genericArguments);
        string GetRaiseMethodOf(EventInfo e);
        MethodInfo GetSignatureOf(EventInfo e);
    }
}
